package com.guomei.service.curse;

import com.guomei.bean.curse.DistributionApply;
import com.guomei.bean.curse.GetByStatusDTO;
import com.guomei.utils.Result;

import java.util.List;

/**
 * 分销申请服务接口
 */
public interface DistributionApplyService {
    /**
     * 根据ID查询分销申请
     */
    DistributionApply getById(Long id);

    /**
     * 根据课程ID和分销人ID查询
     */
    DistributionApply getByCourseIdAndDistributorId(Long courseId, Long distributorId);

    /**
     * 根据用户ID查询分销申请列表
     */
    List<DistributionApply> getByUserId(Long userId, Short status);

    /**
     * 根据课程ID查询分销申请列表
     */
    List<DistributionApply> getByCourseId(Long courseId, Short status);

    /**
     * 根据老师ID查询分销申请列表
     */
    List<DistributionApply> getByTeacherId(Long teacherId, Short status);

    /**
     * 根据状态查询分销申请列表
     */
    Result<?> getByStatus(GetByStatusDTO getByStatusDTO);

    /**
     * 提交分销申请
     */
    Result<?> submitApply(DistributionApply distributionApply);

    /**
     * 审核分销申请
     */
    Result<?> reviewApply(Long id, Short status, String reviewRemark);

    /**
     * 更新分销申请信息
     */
    boolean update(DistributionApply distributionApply);

    /**
     * 根据ID删除
     */
    boolean removeById(Long id);
}
